package com.employee.util;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

/**
 * ID生成器工具类
 * 所有表的主键通过代码生成，不使用数据库自增
 */
public class IdGenerator {
    
    /**
     * 生成UUID（去掉横线）
     * @return UUID字符串
     */
    public static String generateId() {
        return UUID.randomUUID().toString().replace("-", "").toUpperCase();
    }
    
    /**
     * 生成带前缀的ID
     * 规则：前缀 + 时间戳 + 随机数
     * @param prefix 前缀（如EMP、OPT、ADMIN）
     * @return ID字符串
     */
    public static String generateId(String prefix) {
        String timestamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
        String random = String.valueOf((int)(Math.random() * 10000));
        return prefix + timestamp + String.format("%04d", Integer.parseInt(random));
    }
    
    /**
     * 生成序号（4位数字，不足补0）
     * @param num 数字
     * @return 格式化的序号字符串
     */
    public static String formatSequence(int num) {
        return String.format("%04d", num);
    }
}
